home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-12-22 | 1.9 KB | 99 lines | [TEXT/ttxt] |
- \ print -- Printer support
- \ 10/10/84 rw Version 1
- \ 11/22/84 cbd Added vectors for system printing
- \ 12/19/84 ssg Moved selectors; added formfeed;
- \ Added echovec stuff to +print, -print.
- \ 12/31/84 ssg Converted to module.
- \ 2/13/85 cbd subclass of PBDrvr instead of File
- \ 12/19/85 cdn Renamed ff to np (new page), to avoid conflict with $ ff
- \ 6/27/86 cdn Improved error message for Reset failure
- Decimal
-
- :Module printMod
-
- // drvr
-
- SCON PRNAME ".Print"
-
- :CLASS PrintFcb <Super PBDrvr
-
- \ ( -- )
- :M PINIT:
- prname name: self
- -3 put: IORefNum
- ;M
-
- \ ( -- )
- :M RESET:
- 7 put: csCode
- 0 put: IOBuffer
- 1 put: csp1 0 put: csp2
- addr: header fcall PBControl
- abort" Reset Failed; Printer Driver may be missing from disk "
- ;M
-
- :M FF:
- 7 put: csCode
- 0 put: IOBuffer
- 2 put: csp1 0 put: csp2
- addr: header fcall PBControl
- abort" FF failed "
- ;M
-
- :M LF:
- 7 put: csCode
- 0 put: IOBuffer
- 3 put: csp1 0 put: csp2
- addr: header fcall PBControl
- abort" LF failed "
- ;M
-
- \ ( -- )
- :M OPEN:
- pinit: self open: super reset: self
- abort" Can't open printer"
- ;M
-
- \ ( addr len -- )
- :M PRINT:
- 5 put: csCode
- put: IOBuffer
- +base addr: header 28 + !
- addr: header fcall PBControl
- abort" Print Failed "
- ;M
-
- \ ( char -- )
- :M PEMIT:
- pad c! pad 1 print: self
- ;M
-
- \ ( -- )
- :M CLOSE:
- ff: self close: super
- abort" Can't close printer "
- ;M
-
- ;CLASS
-
- printFcb Printer
-
- : pinit open: printer ;
- : pemit pemit: printer ;
- : ptype print: printer ;
- : pcr lf: printer $ 0a ( ASCII linefeed ) pemit ;
- \ previously named "ff"; changed to avoid collision with hex # ff
- : np ff: printer ;
-
- \ ( c -- ) echo to printer AND screen.
- : echo dup emitvec pemitvec ;
-
- \ enable simultaneous printing of Yerk screen text
- : +print
- open: printer 'c pemit -> pemitvec 'c echo -> echovec
- 'c ptype -> ptypevec 'c pcr -> pcrvec ;
-
- : -print 0 -> pemitvec 0 -> echovec 0 -> ptypevec 0 -> pcrvec ;
-
- ;Module
-